/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package moteur.carte;

import moteur.carte.editor.Graphe;
import java.util.Vector;
import moteur.Terrain;
import moteur.Transport;
import moteur.partie.Joeur;

/**
 *
 * @author nlupins
 */
public class EmplacementLegal {

    private Chemin c;
    private Transport t;

    /**
     * Emplacement et type du pion placable.
     * @param c
     * @param t
     */
    public EmplacementLegal(Chemin c, Transport t) {
        this.c = c;
        this.t = t;
    }

    /**
     * Retourne les emplacement légaux sur lesquels le joeur peut placer un pion.
     * @param j
     * @param g
     * @return
     */
    public static Vector<EmplacementLegal> getPos(Joeur j, Graphe g) {

        Vector<EmplacementLegal> pos = new Vector<EmplacementLegal>();
        Boolean[] pionsDispo = j.getPions().getDispo();
        int taille = pionsDispo.length;
        Transport[] t = Transport.values();

        for (Chemin c : g.getListeChemin()) {
            if (c.getPionTransport() == null) {
                for (int i = 0; i < taille; i++) {
                    if (pionsDispo[i] && (t[i].getCout(c.terrain) != 127)) {
                        pos.add(new EmplacementLegal(c, t[i]));
                    }
                }
            }
        }

        return pos;
    }

    /**
     *
     * @return
     */
    public Chemin getC() {
        return c;
    }

    /**
     *
     * @return
     */
    public Transport getT() {
        return t;
    }

}
